<?php

	try {

		$includeModels = array('BaseModel.class','Operacao.class');
		include('../../model/BaseModel.class.php');
		include('../../model/Operacao.class.php');
					
		$auth = array(
						array('action'=> 'Excluir', 'operacao'=>Operacao::CONTRATO_CADASTRAR_LOTACOES),
						array('action'=> 'Salvar', 'operacao'=>Operacao::CONTRATO_CADASTRAR_LOTACOES)												
					 );
		
		require_once '../../controller/controller.inc.php';
		
		$operacoes = array();
		$operacoes[0] = Operacao::CONTRATO_CADASTRAR_LOTACOES;
		$operacoes[1] = Operacao::CONTRATO_VISUALIZAR_LOTACOES;
		
		FluxoContrato::isVisible($operacoes);
		
		# Classes para indicar a aba ativa
		$classeContratos = '';
		$classeVagas = '';
		$classeLotacoes = 'class="ativa"';
		$classeSalarios = '';
		$classeVagasLotacoes = '';
		$classeAditivos = '';
		$classeArquivos = '';
		
		$submitUrl = basename(__FILE__) . '?contratoid=' . $_GET['contratoid'];
		
		$objeto = new LotacaoContrato();
	    
		$pesquisa = false;
	
	    $contrato = new Contrato($_GET['contratoid']);
		
		if (FluxoContrato::isEditable('lotacoescontrato', $contrato)) {
			$readOnly = '';
		}
		else {
			$readOnly = 'disabled="disabled"';
		}
	    
	    $contratoid = $contrato->contratoid;
	    
		if ($contrato->isBloqueado()
		    OR $contrato->statusid == Status::Contrato_Cadastrado) {
		    $readOnly = 'disabled="disabled"';
		}
	 	
		# Autorização
	    if (!$usuario->isContratoPermitido($_GET['contratoid'])) {
	    	$_GET['contratoid'] = -1;
	    	throw new Exception('Voce não tem autorizacao para acessar esta pagina.');	    		
	    }
	    	   
	    $lista = listar();
	    
	    $info = NULL;
        
        // mensagens motivos aditivo
        $motivos = array(MotivoAditivo::MOTIVO_QUANTIDADE);
        if ($contrato->isAditivo() AND !$contrato->hasMotivosAditivo($motivos)) {
            $info = 'Para alterar lotações desse aditivo, seus motivos devem conter o
               item quantidade';
        }
        else {
            // $contrato
            // $contratooriginal
            
        }
	    
//        TODO checar as mensagens de aditivo
//        $contrato_original = new Contrato($contrato->contratooriginalid);
//            $vagas = $contrato->getVagas();
//            $vagas_originais = $contrato_original->getVagas();
//            
//            var_dump($vagas_originais);
        
        
        
	    require( '../../controller/contratos/helper_situacao.php' );
	    
	    if (isset ($_POST["btnAcao"])) {
	        $form = $_POST["btnAcao"];
	        switch($form) {
	            
	            case "Salvar":
	               
					if ($contrato->isBloqueado() == TRUE) {
	            		throw new Exception(TMensagens::getContratoBloqueado());
					}
					
	            	if ($_POST['ddlLotacaoID'] == 0) {
	            		throw new Exception("Lotação Inválida");
	            	}
	            	
	            	$objeto->contratoid = $_GET['contratoid'];
	            	$objeto->lotacaoid = $_POST['ddlLotacaoID'];
	            	$objeto->salvar();
	            	
	            	$objeto = new LotacaoContrato();
	            	
	            	$message = 'insercao';
	            	header('Location: cadastrar.php?message=' . $message . '&contratoid=' . $contrato->contratoid);
	            	
	                break;
	                
	            case "Excluir":
	            	if (!isset($_POST['chkRegistro'])) {
	            		throw new Exception( TMensagens::getNenhumItemSelecionado() );
	            	}
	            	$objeto->excluirGrupo( $_POST['chkRegistro'] );
	            	$message = 'exclusoes';
	            	break;
	        }
	    }	 
	    
	} catch(exception $e){		
		$erro = $e->getMessage();
	}	
	
	//Função para popular o drop-down
	function listar()
	{		
		$sql = 'SELECT 
					l.lotacaoid as id, 
					l.fantasia 
				FROM ' . Lotacao::tablename . ' l 
				WHERE 
					l.lotacaoid NOT IN ( 
						SELECT 
							lc.lotacaoid 
						FROM 
							' . LotacaoContrato::tablename . ' lc 
						WHERE 
							lc.contratoid = ' . pg_escape_string($_GET['contratoid']) . '
					)
				ORDER BY l.fantasia ASC';
		 		
		return TUtils::CriarResultSet($sql);		
	}
	
?>